1. Field of the Invention
The present invention relates to the field of regression testing. More particularly, the present invention relates to regression test case selection and prioritization.
2. State of the Art
In a software or hardware verification environment, a battery of tests is performed on the software or hardware under development. This battery of tests requires the generation of test cases which are periodically performed on the software or hardware undergoing development. Such a testing methodology is commonly known as “regression” testing. Generally, in a development and verification environment, a large set of regression test cases is generated and retained for analysis of design revisions or extensions. In the verification environment in which a large set of regression test cases exists, the testing of a new version of the design may require a significant amount of time in order to perform each and every one of the regression test cases.
In a complex verification environment such as an intricate hardware design, for example, a central processing unit (CPU), the large set of regression test cases is performed on multiple machines coupled together through a network having a queuing system thereon. Furthermore, as design versions become more intricate and involved, the amount of time for completing the execution of each test case on a subsequent version may also increase. When the regression test cycle for subjecting the new design version to all test cases exceeds a usable or desirable feedback time for receiving the results of the test cases, then a selection process must be employed for addressing an otherwise unacceptable feedback delay process. Therefore, there is a need for intelligently selecting preferred test cases for analyzing design model versions when execution of all possible test cases results in an unacceptable execution time.